#pragma once

#include <string>
using std::string;

#include "Job.h"


class Action
{
public:

    enum Type
    {
        UNKNOWN = 0,
        NEWMSG,
        JOBDONE
    };

    Action(void);
    Action(Action::Type type, Job* pJob, bool start = false, bool end = false)
        : m_type(type), m_pJob(pJob), m_start(start), m_end(end)
    {
    }

    virtual ~Action(void);

    inline Type GetType() { return m_type; }

    inline Job* GetJob() { return m_pJob; }

    inline bool GetStartFlag() { return m_start; }

    inline bool GetEndFlag() { return m_end; }

    inline void SetEndFlag(bool end) { m_end = end; }

protected:
    Type m_type;
    Job* m_pJob;
    bool m_start;
    bool m_end;

};


